package com.yilin.platform.service.user;

import com.baomidou.mybatisplus.extension.service.IService;
import com.yilin.platform.base_core.application.PageData;
import com.yilin.platform.entity.enums.user.UserType;
import com.yilin.platform.entity.user.Account;
import com.yilin.platform.entity.user.Organize;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

public interface IAccountService extends IService<Account>  {
    Account employeeRegister(Organize organize, Account employee, String[] jurisdictionIds);

    void updateAccount(Account loginUser, Account param, Account localAccount);

    void verifySvePassword(Account loginUser, String savePassword);

    Account saveOrUpdateAccount(Account account, Account loginUser);

    void updateAccountAndOrganize(Account loginUser, Account account, Organize organize);

    void transferManager(Account manager, Account account);

    List<Account> getEmployeeByOrganizeId(String organizeId);

    void scrapAccount(Account manager, Account account);

    void login(Account account, HttpServletRequest request);

    String[] getPushIdsByUserType(Account loginUser, UserType userType);

    Account getAccountByWechatId(String wechatId);

    List<Account> getAccountByManager();

    Account getAccountById(String accountId);

    Account getAccountByUsername(String username);

    Account getAccountByPhone(String phone, UserType userType);

    Account getAccountPhone(String phone);

    List<Account> getAccountListByIds(String[] accountIds);

    Account getSystemAdminUser();

    Account getSystemPlatformUser();


    PageData<Account> getAccountChildPage(Account logAccount, Account query, Integer start, Integer limit);

    PageData<Account> getAccountDriverPage(Account logAccount, Account query, Integer start, Integer limit);

    List<Account> getLogicAccountByPhone(String phone);
}
